﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
namespace WebForm
{
    public partial class SanPham : System.Web.UI.Page
    {
        private Library.BIZ.SanPhamBIZ s;
        private DataTable table = new DataTable();
        Library.BIZ.ChiTietKhoBIZ kho;
        protected void Page_Load(object sender, EventArgs e)
        {
            //Session.Contents.RemoveAll();
            int id = 0 ;
            if(!Int32.TryParse(Request.QueryString["id"], out id))
            {
                Response.Redirect("Default.aspx");
                return;
            }
            s = new Library.BIZ.SanPhamBIZ(id);
            if (String.IsNullOrEmpty(s.TenSP))
            {
                Response.Redirect("Default.aspx");
                return;
            }
            label_tensp.Text = "<h2>" + s.TenSP + "</h2>";
            label_gia.Text = "<span class='price'> Giá: " + s.Gia.ToString() + " đ </span>";
            label_img.Text = "<img src='Content/img/upload/" + s.HinhAnh + "' style='border: 4px solid #e5e5e5;'>";
            label_mota.Text = "<p>" + s.MoTa + "</p>";
            hidden_id.Value = s.ID.ToString();
            kho = new Library.BIZ.ChiTietKhoBIZ();
            kho.Get(s, DateTime.Now);

            label_soluongconlai.Text = "Số lượng còn lại: " + kho.SoLuong;
        }

        protected void ThemGioHang_Click(Object sender, EventArgs e)
        {
            int soluong = 0;
            if (!Int32.TryParse(textbox_soluong.Text.Trim(), out soluong))
            {
                label_error.Text = "<p>Số lượng không hợp lệ</p>";
                return;
            }
            if (soluong <= 0)
            {
                label_error.Text = "<p>Số lượng không hợp lệ</p>";
                return;
            }
            
            if (kho.SoLuong < Int32.Parse(textbox_soluong.Text))
            {
                label_error.Text = "<p>Số lượng quá lớn</p>";
                return;
            }

            label_error.Text = String.Empty;

            if (Session["cart"] == null)
            {
                // nếu đặt hàng lần đầu
                table = new DataTable();
                table.Columns.Add("id");
                table.Columns.Add("masp");
                table.Columns.Add("ten");
                table.Columns.Add("hinhanh");
                table.Columns.Add("soluong");
                table.Columns.Add("dongia");
                table.Columns.Add("thanhtien");

                DataRow dr = table.NewRow();
                dr["id"] = s.ID;
                dr["masp"] = s.MaSP;
                dr["ten"] = s.TenSP;
                dr["hinhanh"] = s.HinhAnh;
                dr["soluong"] = textbox_soluong.Text;
                dr["dongia"] = s.Gia;
                dr["thanhtien"] = Int32.Parse(dr["soluong"].ToString()) * Int32.Parse(dr["dongia"].ToString());

                table.Rows.Add(dr);

                Session["cart"] = table;
            }
            else
            {
                table = new DataTable();
                table = (DataTable) Session["cart"];
                int result = SPdacotronggiohang(s.ID.ToString(), table);
                if (result == -1)
                {
                    // nếu sản phẩm chưa có trong giỏ hàng
                    DataRow dr = table.NewRow();
                    dr["id"] = s.ID;
                    dr["masp"] = s.MaSP;
                    dr["ten"] = s.TenSP;
                    dr["hinhanh"] = s.HinhAnh;
                    dr["soluong"] = textbox_soluong.Text;
                    dr["dongia"] = s.Gia;
                    dr["thanhtien"] = Int32.Parse(dr["soluong"].ToString()) * Int32.Parse(dr["dongia"].ToString());

                    table.Rows.Add(dr);

                    Session["cart"] = table;
                }
                else
                {
                    table.Rows[result]["soluong"] = soluong;
                    table.Rows[result]["thanhtien"] = Int32.Parse(table.Rows[result]["soluong"].ToString()) * Int32.Parse(table.Rows[result]["dongia"].ToString());
                    Session["cart"] = table; 
                }

            }

            table = new DataTable();
            table = (DataTable) Session["cart"];

            
            foreach (DataRow i in table.Rows)
            {
                Response.Write(i["soluong"] + "<br/>");
            }

            Response.Redirect(Request.RawUrl);
        }

        private int SPdacotronggiohang(string id, DataTable dt)
        {
            int dong = -1;
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                if ((dt.Rows[i]["id"].ToString()) == id)
                {
                    dong = i;
                    break;
                }
            }
            return dong;
        }
    }
}